<?php

namespace App\Repositories;

use App\Models\MessageTemplate;
use Illuminate\Database\Eloquent\Collection;
use Illuminate\Database\Eloquent\Model;

/**
 * 消息模板
 *
 * Class MessageTemplateRepository
 * @package App\Repositories
 */
class MessageTemplateRepository
{

    /**
     * 添加一个模板
     *
     * @param string $WxTemplateId
     * @param string $name
     * @param string $content
     *
     * @return int
     */
    public function add(string $WxTemplateId, string $name, string $content): int
    {
        $MessageTemplate = new MessageTemplate();
        $MessageTemplate->wx_template_id = $WxTemplateId;
        $MessageTemplate->name = $name;
        $MessageTemplate->content = $content;
        $MessageTemplate->save();
        return $MessageTemplate->id;
    }

    /**
     * 获取所有模板
     *
     * @return MessageTemplate[]|Collection
     */
    public function list($type)
    {
        if (is_array($type)) {
            return MessageTemplate::whereIn('type', $type)->get();
        } else {
            return MessageTemplate::where('type', $type)->get();
        }
    }

    /**
     * 删除（软删除）一个模板，如果不存在不处理
     *
     * @param $id
     */
    public function del($id)
    {
        $MessageTemplate = MessageTemplate::find($id);
        if ($MessageTemplate) {
            $MessageTemplate->delete();
        }
    }

    /**
     * @param $id
     *
     * @return MessageTemplate
     */
    public function getOne($id)
    {
        return MessageTemplate::find($id);
    }

    /**
     * @param $WxTemplateId
     *
     * @return MessageTemplate
     */
    public function fromWxTemplate($WxTemplateId, $type)
    {
        return MessageTemplate::where(['wx_template_id' => $WxTemplateId, "type" => $type])->first();
    }
}
